import axios from "axios";
import router from "@/router/index.js";

// 创建axios
const request = axios.create({
  // 根请求地址
  baseURL: "http://127.0.0.1:8080",
  withCredentials: false, // 请求接口跨域时是否需要凭证
  timeout: 3000, // 超时时间，单位毫秒
});

// 配置请求头的参数类型，和编码格式
axios.defaults.headers["Content-Type"] = "application/json;chatset=utf-8";

// // 配置请求的拦截器，用于添加请求头信息
// request.interceptors.request.use(
//   (config) => {
//     if (localStorage.getItem("userId")) {
//       let userId = localStorage.getItem("userId");
//       let username = localStorage.getItem("username");
//       console.log(userId + "   " + username);
//       let userStore = useUserStore();
//       userStore.setUserInfo(userId, username);
//       router.push("/index/article/all");
//     }
//   },
//   (error) => {
//     // 发生异常，打印并直接返回
//     console.log("----");
//     return Promise.reject(error);
//   }
// );

// 配置响应拦截器
request.interceptors.response.use(
  (response) => {
    // 后端返回的Result类有code，data，message
    let res = response.data;
    if (res.code == null) {
      // 请求未发送到后端，直接返回
      return response;
    } else if (res.code == 200) {
      return response;
    } else if (res.code == 403) {
      // 需要重新登陆，跳转到登录页面，清除pinia中的数据，sessionStorage中
      window.localStorage.clear();
      router.push("/login");
    }
    ElMessage.error(res.message);
    return Promise.reject(res.message);
  },
  (error) => {
    // 出现异常
    ElMessage.error(error);
    window.sessionStorage.clear();
    // router.push("/login");
    return Promise.reject(error);
  }
);

// 导出
export default request;
